package com.school.entity;

/**
 * 子类：Teacher（继承Person，扩展教师特有属性和业务）
 */
public class Teacher extends Person {
    // 教师特有属性：所授课程（每名教师授1门）
    private Course course;

    // 子类构造方法：调用super()初始化父类属性
    public Teacher(String id, String name, String gender) {
        super(id, name, gender); // 初始化父类的id/name/gender
        this.course = null; // 初始化为未开课状态
    }

    // 核心业务：开课（原有逻辑，调整姓名获取方式）
    public void openCourse(Course course) {
        this.course = course;
        course.setTeacher(this); // 双向绑定：课程关联教师
        System.out.println("教师【" + this.name + "】成功开设课程：" + course.getCourseName());
    }

    // 重写父类方法：实现“打印教师授课信息”的业务逻辑
    @Override
    public void printWorksheet() {
        super.printWorksheet(); // 调用父类方法，打印统一表头
        if (this.course != null) {
            Course c = this.course;
            System.out.println("教师编号：" + this.id); // 访问父类protected属性id
            System.out.println("所授课程编号：" + c.getCo urseId());
            System.out.println("所授课程名称：" + c.getCourseName());
            System.out.println("上课地点：" + c.getLocation());
            System.out.println("上课时间：" + c.getTime());
            System.out.println("课程学分：" + c.getCredit());
        } else {
            System.out.println("当前未开设任何课程");
        }
        System.out.println("=========================\n");
    }

    // Getter（供Course类和TestSystem访问教师信息）
    public Course getCourse() {
        return course;
    }
}
